package com.lill.common.component.controller;

import org.apache.shiro.SecurityUtils;

import java.beans.PropertyDescriptor;
import java.util.Map;

public class IBaseController {
    // 平台机构id
    public final static String DEFAULT_COMPANY_ID = "6259d0b70a0d6b36a526fe4e87f9c9b4";
    /**
     * 平台，公司，商户三种角色传不同的值
     */
    public void addQueryParams(Map<String, Object> params){
        Object sessionUser= SecurityUtils.getSubject().getPrincipal();
        try {
            String companyId=new PropertyDescriptor("companyId", sessionUser.getClass()).getReadMethod().invoke(sessionUser).toString();
            Object departId=new PropertyDescriptor("departId", sessionUser.getClass()).getReadMethod().invoke(sessionUser);
//            Object id=new PropertyDescriptor("id", sessionUser.getClass()).getReadMethod().invoke(sessionUser);
            // 如果不是超级管理员，则只能查询本部门及子部门数据
            if (!DEFAULT_COMPANY_ID.equals(companyId)) {
                // 公司和部门id一样的话当前登录人就是公司的管理员
                if (companyId.equals(departId)) {
                    params.put("companyId",companyId);
                } else {
                    params.put("departId",departId);
                }
            }
        }catch (Exception e){
        }
    }
}
